The reliability of data transmission within a digital communication system depends on the signal-to-noise ratio (SNR) of the communication system. For example, the bit error rate (BER), a measure of the reliability of data transmission through the communication system, increases as the SNR decreases. Data encoders and data decoders are used within digital communication systems and are designed to provide coding gain to improve the effective SNR and decrease the BER of the system. Decoders within receivers of the digital communication systems are used to recover data subsequent to data encoding and transmission. A decoder taught by Kindred et al. in U.S. Pat. No. 5,710,784 operates on frame packets of data containing multiple code symbols. This decoder also uses a chain-back process that traces backward to recover the original data from the encoded data. The chain-back process and storage of multiple code symbols relies on memory elements and limits the rate at which data is recovered by the decoder. As data rates within digital communications systems continue to increase, limitations in data recovery rates become less tolerable and the need for high-speed data decoders becomes more pressing.
According to the preferred embodiment of the present invention, a data decoding scheme operates on individual code symbols within an encoded data stream, enabling data to be recovered from the code symbols at a high rate. The decoding scheme, typically included within a receiver of a digital communication system or data network, does not rely on processing and storing multiple code symbols and is unencumbered by storage memory elements and decoding rate limitations associated with receiving and processing blocks of multiple code symbols. The decoding scheme generates bit sequences that correspond to each alternative data state of a received code symbol. Error vectors are generated as a result of comparing each of the generated bit sequences to the received code symbol. The data state of data within the encoded data stream is recovered from the code symbol by selecting the minimum of the generated error vectors.